A software framework provides generic application functionality that can be built upon and customized by an application developer. Different frameworks may provide different generic application functionality, and are thus suitable for different domains of applications. Thus, application developers select an appropriate framework on which to build their application, and author that application with the framework in mind.
One system provided by a framework is called a “type system” which defines the various extended type set that the framework uses, and defines the relationships between the types in the extended type set. The framework uses a library of primitive classes (also called a “base class library”) offered by the runtime in which the application will execute. Such classes may include fundamental base types such as, for example, a root object class, a string class, an integer class, a floating point class, and the like. Such base classes may be included in, for example, a base class library.
Frameworks often offer extended hierarchical type systems that derive from the set of base class objects defined by the runtime. If multiple frameworks are to use the runtime, each with their own extended type system, each type system as derives from the same common set of base class objects which can be used by any framework built on the runtime.